/**
 * LMX2592: TI-LMX2592-频率合成器,9.8GHz
 */
#pragma once

#include <stdint.h>
#include "mcu.h"

// 表示寄存器参数结束
#define LMX2592_REG_END 0xFFFFFFFF

/// @brief LMX2592 统一驱动 数据结构
typedef struct _unidrv_lmx2592 {
    mcu_spi_t *spi;     /// 使用的 SPI 接口
    func_gpio_write_out_t nss; /// NSS 片选信号
    func_gpio_switch_t    ce;  /// CE 芯片使能信号, 高有效
    func_gpio_read_in_t   ld;  /// PLL Lock-Detect 锁定指示
} unidrv_lmx2592_t;

/// @brief LMX2592 初始化
/// @param regs 寄存器指令，低 24 位有效，[23:16]为寄存器地址, [15:0]为寄存器值。0xFFFFFFFF表示寄存数组结束。
std_err_t unidrv_lmx2592_init(unidrv_lmx2592_t *dev, uint32_t regs[]);
